Correct program parallelisations
نویسندگان
چکیده
Abstract A commonly used approach to develop deterministic parallel programs is augment a sequential program with compiler directives that indicate which blocks may potentially be executed in parallel. This paper develops verification technique reason about such directives, particular show they do not change the behaviour of program. Moreover, tool-supported and can combined proving functional correctness To our technique, we propose simple intermediate representation (syntax semantics) captures main forms programs. language distinguishes three kinds basic blocks: parallel, vectorised blocks, composed using different composition operators: sequential, fusion composition. We how widely subset OpenMP encoded into this representation. Our builds on notion iteration contract specify blocks; if contracts are manually specified for single then sufficient automatically data race freedom also it establish linearised version original conclude Finally, exemplify an example program, discuss tool support provided.
منابع مشابه
On Correct Program Schemas
Extended Abstract 1 Introduction A program schema is an abstraction of a class of actual programs, in the sense that it represents their data-ow and control-ow, but does not contain (all) their actual computations or (all) their actual data structures. Program schemas have been shown to be useful in a variety of applications, such as proving properties of programs, teaching programming to novic...
متن کاملVerification of Loop Parallelisations
Writing correct parallel programs becomes more and more difficult as the complexity and heterogeneity of processors increase. This issue is addressed by parallelising compilers. Various compiler directives can be used to tell these compilers where to parallelise. This paper addresses the correctness of such compiler directives for loop parallelisation. Specifically, we propose a technique based...
متن کاملFormal Mathematics for Verifiably Correct Program Synthesis
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculus as a means to create verifiably correct implementations of program synthesis tools. Using reflected notions of programming concepts we can specify the actions of synthesis methods within the object language of the calculus and prove formal theorems about their behavior. The theorems serve as de...
متن کاملGencel: a program generator for correct spreadsheets
A huge discrepancy between theory and practice exists in one popular application area of functional programming—spreadsheets. Although spreadsheets are the most frequently used (functional) programs, few formal models of computation and type systems exist that would provide the foundation for creating reliable spreadsheets. Consequently, existing spreadsheets contain many errors, some of which ...
متن کاملA Unifying Framework for Correct Program Construction
We present a description technique for the correct construction of programs that allows us to deene terms like reenement, model-checking, and synthesis as special operations within this framework. From that meta-view on program constructions both advantages and disadvantages of all methods mentioned become clear. Furthermore, it becomes clear that an incremental program construction seems to be...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: International Journal on Software Tools for Technology Transfer
سال: 2021
ISSN: ['1433-2779', '1433-2787']
DOI: https://doi.org/10.1007/s10009-020-00601-z